wayland: Add internal API to unset a touch implicit grab
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 20 Aug 2014 18:22:42 +0000 (20:22 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 26 Aug 2014 11:39:41 +0000 (13:39 +0200)
This removes both the wayland specific accounting, and the Gdk implicit
grab tracking.

https://bugzilla.gnome.org/show_bug.cgi?id=731380

gdk/wayland/gdkdevice-wayland.c
gdk/wayland/gdkprivate-wayland.h

index 002b250f420636a662f5aeb7b313156ce023c29f..2ff888c015882358740e06012cf86468855eb386 100644 (file)
@@ -2158,3 +2158,17 @@ gdk_wayland_device_clear_selection_content (GdkDevice *gdk_device)
 
   return TRUE;
 }
+
+void
+gdk_wayland_device_unset_touch_grab (GdkDevice        *gdk_device,
+                                     GdkEventSequence *sequence)
+{
+  GdkWaylandDeviceData *device;
+
+  g_return_if_fail (GDK_IS_WAYLAND_DEVICE (gdk_device));
+  device = GDK_WAYLAND_DEVICE (gdk_device)->device;
+
+  gdk_wayland_device_remove_touch (device, GDK_EVENT_SEQUENCE_TO_SLOT (sequence));
+  _gdk_display_end_touch_grab (gdk_device_get_display (gdk_device),
+                               gdk_device, sequence);
+}
index e1867f6f98322aadb6a920ad5b973d729796afcf..e56592eb8d259f350b12ef6e5b4bf3be388cbc7a 100644 (file)
@@ -148,6 +148,9 @@ uint32_t _gdk_wayland_device_get_implicit_grab_serial(GdkWaylandDevice *device,
 uint32_t _gdk_wayland_device_get_last_implicit_grab_serial (GdkWaylandDevice  *device,
                                                             GdkEventSequence **seqence);
 
+void gdk_wayland_device_unset_touch_grab (GdkDevice        *device,
+                                          GdkEventSequence *sequence);
+
 void     _gdk_wayland_display_deliver_event (GdkDisplay *display, GdkEvent *event);
 GSource *_gdk_wayland_display_event_source_new (GdkDisplay *display);
 void     _gdk_wayland_display_queue_events (GdkDisplay *display);